package org.lc.stk.service.bank;

import java.util.List;

import org.lc.stk.model.banks.CourseQuestionBank;
import org.lc.stk.web.dto.bank.CourseQuestionBankDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

public interface CourseQuestionBankService {
    
    /**
     * 创建单课程题库
     */
    CourseQuestionBank create(CourseQuestionBankDTO dto);

    /**
     * 更新单课程题库
     */
    CourseQuestionBank update(Integer id, CourseQuestionBankDTO dto);

    /**
     * 删除单课程题库，逻辑删除，停用
     */
    void delete(Integer id);

    /**
     * 根据ID获取单课程题库
     */
    CourseQuestionBank getById(Integer id);

    /**
     * 获取课程下的所有题库
     */
    List<CourseQuestionBank> listByCourse(Integer courseId);

    /**
     * 分页查询单课程题库
     */
    Page<CourseQuestionBank> query(Integer courseId, String name, Integer state, Pageable pageable);

    /**
     * 检查题库名称在指定课程下是否存在
     */
    boolean isNameExists(String name, Integer excludeId, Integer courseId);
}